云原生面临的安全问题
云原生面临的安全问题可以从容器、编排系统、微服务、服务网格、无服务器计算五个层面分析其安全风险。
容器安全问题
在云原生环境下,容器作为微服务的主要载体,是底层基础设施,为适应应用的快速部署和迭代,容器具有数量庞大、生命周期短暂等特点,且在容器的新建和消失过程中用于标识容器IP地址 、名称等均将发生变化,这对于传统的基于IP的访问控制策略是一种极大的挑战。容器面临的主要安全挑战包括:容器镜像的安全性、容器间流量和访问控制的复杂性、共享操作系统内核情况下容器逃逸的安全风险、容器安全配置的复杂性、特权容器的权限控制等。
编排系统安全问题
编排系统是容器的大脑,它可以提供用户所需的容器部署,管理和扩缩容等编排功能。比如,Kubernetes就是被最为广泛使用的容器编排系统。编排系统的安全问题同样对云原生环境影响深远,其需要考虑的问题主要包括不安全的配置、漏洞利用、敏感数据获取、横向移动、远程控制和持久化驻留等。
微服务安全问题
微服务就是将单体应用中的不同模块拆分成微服务,这些微服务都可以独立部署、运维、升级和扩展,微服务之间通过使用RESTful API进行通信。在云原生环境中,内外网边界模糊,更多的API会暴露在互联网上。随着API暴露面的增加,其被攻击的风险也大大增加,传统的南北向防护体系在云原生环境下显得力不从心。此外,微服务架构增加了服务间的访问和调用,给东西向流量控制带来了更大的挑战。
服务网格安全问题
服务网格被认为是下一代的微服务架构,其主要对服务进程间的通信进行管理,是云原生的发展和延伸。比如Istio就是一款典型的微服务管理和服务网格框架项目。引入新的技术必然也会带来新的安全风险,服务网络面临的主要安全风险包括:不安全的通信导致的中间人攻击、东西向和南北向的认证授权和访问控制不当造成的越权攻击等。
无服务器计算安全问题
无服务器计算是指在不考虑服务器的情况下构建并运行应用程序和服务,使开发者无需关注底层基础设施、设备的管理。无服务器计算并非指没有服务器,而是指使用者无需关注服务器,而由服务商来对服务器进行管理。Serverless 是新的云原生模式,当然同样面临安全问题,主要包括复杂和流动的攻击面、数据注入、非授权访问、操作不可见、无法溯源等。